﻿/*****************************************************************
* 模 块 名 : 
* 文 件 名 : yuv.h
* 相关文件 : 
* 功    能 : 
* 作    者 : Xsky
* 版    本 : V0.1
* -------------------------------------------------------------
* 修改记录 : 
* 日  期     	版本        修改人      修改内容
* 2017年5月24日 	v0.1        Xsky        创建
*****************************************************************/

#pragma once
#ifndef YUV_H_
#define YUV_H_

#include "base_type.h"


#ifdef __cplusplus
extern "C"
{
#endif
/****************************/

	void *yuv_video_create(const char *pfile_name, int width, int height, int is_read_all, int read_frames);
	int yuv_video_destroy(void **pphandle);

	int yuv_read_next_loop(void *phandle, uint8_t *pdata, int bufsize, unsigned int *pframe_no, int *pis_restart);

	// 跳至相应的帧索引，从0开始
	int yuv_goto_frame(void *phandle,  unsigned int frame_no);

	unsigned int yuv_get_total_frame(void *phandle);

	void yuv_copy_rect(uint8_t *pdst, int dst_w, int dst_h, uint8_t *psrc, int src_w, int src_h,
		int dst_x, int dst_y, CV_RECT *psrc_rect);

	void yuv_copy_rect_ex(uint8_t *pdst, int dst_w, int dst_h, uint8_t *psrc, int src_w, int src_h,
		int dst_x, int dst_y, CV_RECT *psrc_rect);


/****************************/
#ifdef __cplusplus
}
#endif

#endif /* YUV_H_ */
